package com.pzb.page.service.impl;


import com.pzb.common.utils.DateUtils;
import com.pzb.page.domain.PgPageItem;
import com.pzb.page.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.pzb.page.mapper.PgPageMapper;
import com.pzb.page.domain.PgPage;

import java.util.List;

/**
 * 页面管理Service业务层处理
 * 
 * @author pzb
 * @date 2021-09-17
 */
@Service
public class PgPageServiceImpl implements IPgPageService
{
    @Autowired
    private PgPageMapper pgPageMapper;
    @Autowired
    private IPgPageItemService pageItemService;
    @Autowired
    private IPgPageItemScrollposterService pageItemScrollposterService;
    @Autowired
    private IPgPageItemEjectService pgPageItemEjectService;
    @Autowired
    private IPgPageItemNoticeService pgPageItemNoticeService;
    @Autowired
    private IPgPageItemHotspotareaService pageItemHotspotareaService;
    @Autowired
    private IPgPageItemGoodsService pgPageItemGoodsService;
    @Autowired
    private IPgPageItemVideoService pgPageItemVideoService;
    @Autowired
    private IPgPageItemGroupbuyingService pgPageItemGroupbuyingService;
    @Autowired
    private IPgPageItemPanicbuyingService pgPageItemPanicbuyingService;
    @Autowired
    private IPgPageItemPictureService pgPageItemPictureService;

    /**
     * 查询页面管理
     * 
     * @param id 页面管理主键
     * @return 页面管理
     */
    @Override
    public PgPage selectPgPageById(Long id)
    {
        return pgPageMapper.selectPgPageById(id);
    }

    /**
     * 查询页面管理列表
     * 
     * @param pgPage 页面管理
     * @return 页面管理
     */
    @Override
    public List<PgPage> selectPgPageList(PgPage pgPage)
    {
        return pgPageMapper.selectPgPageList(pgPage);
    }

    /**
     * 新增页面管理
     * 
     * @param pgPage 页面管理
     * @return 结果
     */
    @Override
    public int insertPgPage(PgPage pgPage)
    {
        pgPage.setCreateTime(DateUtils.getNowDate());
        return pgPageMapper.insertPgPage(pgPage);
    }

    /**
     * 修改页面管理
     * 
     * @param pgPage 页面管理
     * @return 结果
     */
    @Override
    public int updatePgPage(PgPage pgPage)
    {
        pgPage.setUpdateTime(DateUtils.getNowDate());
        return pgPageMapper.updatePgPage(pgPage);
    }

    /**
     * 批量删除页面管理
     * 
     * @param ids 需要删除的页面管理主键
     * @return 结果
     */
    @Override
    public int deletePgPageByIds(Long[] ids)
    {
        return pgPageMapper.deletePgPageByIds(ids);
    }

    /**
     * 删除页面管理信息
     * 
     * @param id 页面管理主键
     * @return 结果
     */
    @Override
    public int deletePgPageById(Long id)
    {
        //查询页面模块
        PgPageItem q=new PgPageItem();
        q.setPageId(id);
        List<PgPageItem> itemList=pageItemService.selectPgPageItemList(q);
        for (PgPageItem item : itemList) {
            if (item.getItemCode().intValue()== 1) {//轮播海报
                pageItemScrollposterService.deleteScrollposterByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 2){
                pgPageItemEjectService.deletePgPageItemEjectByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 3){
               pgPageItemNoticeService.deleteNoticeByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 4){
                pageItemHotspotareaService.deleteHotspotareaByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 5){
                pgPageItemGoodsService.deletePgPageItemGoodsByItemId(item.getId());
                pgPageItemGoodsService.deletePgPageItemGoodsListByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 6){
                pgPageItemVideoService.deletePgPageItemVideoByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 7){
                pgPageItemGroupbuyingService.deletePgPageItemGroupbuyingByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 8){
                pgPageItemPanicbuyingService.deletePgPageItemPanicbuyingByItemId(item.getId());
            }else if(item.getItemCode().intValue()== 9){
                pgPageItemPictureService.deletePgPageItemPictureByItemId(item.getId());
            }
        }
        pageItemService.deletePgPageItemByPageId(id);
        return pgPageMapper.deletePgPageById(id);
    }

    @Override
    public int changePageHome(PgPage page) {
        //设置为主页时状态同时改为启用
        if (page.getIsHome().equals("0")) {
            page.setState("0");
            //取消其他主页
            pgPageMapper.cancelOtherHomePage(page.getExtAppid());
        }
        return pgPageMapper.updatePgPage(page);
    }
}
